﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace YemekteyizLib.Bs
{
    public class IlProvider
    {
        /// <summary>
        /// Adam ili seçtikten sonra kullanılacak. 
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static Il getByID(int id)
        {
            SqlCommand cmd = new SqlCommand("select * from Iller where IlID = @ID");
            cmd.Parameters.AddWithValue("@ID", id);
            cmd.Connection = Tools.GetConnection();
            SqlDataReader rdr = cmd.ExecuteReader();
            Il i = new Il();
            i.Ilceleri = new List<Ilce>();
            

            if (rdr.HasRows)
            {
                rdr.Read();
                i.ID = id;
                i.Adi = rdr.GetString(1);
                i.Ilceleri = IlceProvider.getByIl(i);
                
            }
            Tools.CloseConnection();
            return i;
        }

        /// <summary>
        /// İlk sayfada kullanılacak metot. Adam illerden birini seçecek, ve ana sayfaya seçtiği ilin ID'sini queryString ile gönderecek.
        /// </summary>
        /// <returns></returns>
        public static List<Il> GetAll()
        {
            SqlCommand cmd = new SqlCommand("select * from Iller");
            
            cmd.Connection = Tools.GetConnection();
            SqlDataReader rdr = cmd.ExecuteReader();

            List<Il> donecek = new List<Il>();


            if (rdr.HasRows)
            {
                while (rdr.Read())
                {
                    Il i = new Il();
                    i.ID = rdr.GetInt32(0);
                    i.Adi = rdr.GetString(1);
                    donecek.Add(i);
                }

            }
            Tools.CloseConnection();

            foreach (Il i in donecek)
            {
                i.Ilceleri = IlceProvider.getByIl(i);
            }

            return donecek;
        }
    }
}
